package com.right.dao;

import java.sql.Connection;
import java.util.List;

import com.Tools.PageData;
import com.right.entity.Orders;

/**
 * 订单Dao接口
 * 
 * @author 柯富峰
 */
public interface OrdersDao {
	/**
	 * 添加订单
	 * 
	 * @param orders 订单对象
	 * @return 操作成功;false 操作失败
	 */
	public boolean addOrders(Orders orders);

	/**
	 * 删除订单
	 * 
	 * @param orders 订单对象
	 * @return 操作成功;false 操作失败
	 */
	public boolean delOrders(Orders orders);

	// 删除订单
	public boolean delOrdersById(String orderid);

	// 修改菜品
	public boolean updateOrders(Orders orders);

	/**
	 * 修改订单(收货地址)
	 * 
	 * @param orders 订单对象
	 * @return 操作成功;false 操作失败
	 */
	public boolean updateOrdersByAddress(Orders orders);

	/**
	 * 修改订单(订单状态)
	 * 
	 * @param orders 订单对象
	 * @return 操作成功;false 操作失败
	 */
	public boolean updateOrdersByOrderstatus(Orders orders);

	/**
	 * 修改订单(订单备注)
	 * 
	 * @param orders 订单对象
	 * @return 操作成功;false 操作失败
	 */
	public boolean updateOrdersByOrderinfo(Orders orders);

	/**
	 * 修改订单(送达时间)
	 * 
	 * @param orders 订单对象
	 * @return 操作成功;false 操作失败
	 */
	public boolean updateOrdersByEndtime(Orders orders);

	/**
	 * 查询订单信息(店家)
	 * 
	 * @param store 店家
	 * @return null 查无信息;list 查询结果
	 */
	public List<Orders> getOrdersByStore(String store);

	/**
	 * 查询订单信息(订单状态关键字)
	 * 
	 * @param keywords 订单状态关键字
	 * @return null 查无信息;list 查询结果
	 */
	public List<Orders> getOrdersByOrderstatus(String keywords);

	/**
	 * 查询订单信息(下单时间)
	 * 
	 * @param starttime 下单时间
	 * @return null 查无信息;list 查询结果
	 */
	public List<Orders> getOrdersByStarttime(String keywords);

	/**
	 * 查询订单信息(用户编号)
	 * 
	 * @param userid 用户编号
	 * @return null 查无信息;list 查询结果
	 */
	public List<Orders> getOrdersByUserid(int userid);

	/**
	 * 查询订单信息(店家)分页
	 * 
	 * @param page     页数
	 * @param pageSize 单页数据
	 * @param store    店家
	 * @return null 查无信息;list 查询结果
	 */
	public PageData<Orders> getOrdersByStorePage(int page, int pageSize, String store);

	/**
	 * 查询订单信息(用户编号)分页
	 * 
	 * @param page     页数
	 * @param pageSize 单页数据
	 * @param userid   用户编号
	 * @return null 查无信息;list 查询结果
	 */
	public PageData<Orders> getOrdersByUseridPage(int page, int pageSize, int userid);

	/**
	 * 查询订单信息(订单状态关键字)分页
	 * 
	 * @param page     页数
	 * @param pageSize 单页数据
	 * @param keywords 订单状态关键字
	 * @return null 查无信息;list 查询结果
	 */
	public PageData<Orders> getOrdersByOrderstatusPage(int page, int pageSize, String keywords);

	/**
	 * 查询订单信息(下单时间)分页
	 * 
	 * @param page      页数
	 * @param pageSize  单页数据
	 * @param starttime 下单时间
	 * @return null 查无信息;list 查询结果
	 */
	public PageData<Orders> getOrdersByStarttimePage(int page, int pageSize, String keywords);

	/**
	 * 查询订单信息(订单编号)
	 * 
	 * @param store 店家
	 * @return null 查无信息;list 查询结果
	 */
	public List<Orders> getOrdersByOrderid(String orderid);

	/**
	 * 增加订单
	 * 
	 * @param conn   连接
	 * @param orders 订单对象
	 * @return n=0 添加失败;n>0 添加成功
	 */
	public int addOrders(Connection conn, Orders orders);

	/**
	 * 根据商家名称分页查询订单
	 * 
	 * @param page
	 * @param pageSize
	 * @param keywords
	 * @return
	 */
	public PageData<Orders> getOrdersByStoreByPage(int page, int pageSize, String keywords);

}
